#!/bin/bash

set -e

echo "🚀 WebRTC 项目 Docker 部署脚本"
echo "================================"

# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装，请先安装 Docker"
    exit 1
fi

if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose 未安装，请先安装 Docker Compose"
    exit 1
fi

# 停止现有容器
echo "🛑 停止现有容器..."
docker-compose down --remove-orphans || true

# 清理旧镜像（可选）
read -p "是否清理旧的 Docker 镜像? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "🗑️ 清理旧镜像..."
    docker system prune -f
    docker image prune -f
fi

# 生成 SSL 证书
echo "🔐 生成 SSL 证书..."
if [ ! -f "nginx/ssl/cert.pem" ]; then
    ./scripts/generate-certs.sh
else
    echo "证书已存在，跳过生成"
fi

# 构建镜像
echo "🔨 构建 Docker 镜像..."
docker-compose build --no-cache

# 选择部署模式
echo "请选择部署模式:"
echo "1) 仅应用服务 (默认)"
echo "2) 应用服务 + Nginx 反向代理"
read -p "请输入选择 (1-2): " choice

case $choice in
    2)
        echo "🚀 启动应用 + Nginx..."
        docker-compose --profile with-nginx up -d
        echo "✅ 部署完成！"
        echo "🌐 访问地址: https://localhost"
        echo "📊 健康检查: https://localhost/health"
        ;;
    *)
        echo "🚀 启动应用服务..."
        docker-compose up -d
        echo "✅ 部署完成！"
        echo "🌐 访问地址: https://localhost:5001"
        echo "📊 健康检查: https://localhost:5001/health"
        ;;
esac

# 显示容器状态
echo ""
echo "📋 容器状态:"
docker-compose ps

# 显示日志
read -p "是否查看实时日志? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "📝 实时日志 (Ctrl+C 退出):"
    docker-compose logs -f
fi 